package com.dream.rpc.utils;

import cn.hutool.core.util.StrUtil;
import cn.hutool.setting.dialect.Props;
import com.dream.rpc.config.RpcConfig;

/**
 * 配置工具类
 * @author Dreamer
 */
public class ConfigUtils {


    /**
     * 加载默认环境配置文件
     * @param configClass
     * @param prefix
     * @return
     * @param <T>
     */
    public static <T> T loadConfig(Class<T> configClass, String prefix) {
        return loadConfig(configClass, prefix, "");
    }

    /**
     * 根据不同环境加载配置文件
     * @param configClass 想要转换成的类实体
     * @param prefix 根据配置文件的某个前缀读取，例如 rpc.XXX
     * @param environment 环境
     * @return
     * @param <T>
     */
    public static <T> T loadConfig(Class<T> configClass, String prefix, String environment) {

        StringBuilder application = new StringBuilder("application");
        if (StrUtil.isNotBlank(environment)) {
            application.append("-").append(environment);
        }
        application.append(".properties");
        Props props = new Props(application.toString());
        return props.toBean(configClass, prefix);
    }






}
